tg-me.com/orgprog/329
Last Update:
ООП (неочевидные плюсы)
По следам последнего видео. У ООПшных языков, есть одна киллер фича и одно удобство, которые редко встречаются в других местах. Сейчас будет шок 🙂
Если у вас структура вызова сущность.метод, вы получаете автокомплит. Если у вас вызов функция(данные), то хрен вам, а не автокомплит. Как вам такое? Является ли это фишкой ооп? Вообще-то нет, да так совпало что в ооп это повсеместно, но это всего лишь вопрос синтаксиса языка. Зацените пример на go:
type User struct {
Name string
}
func (u *User) Greet() {
fmt.Println("Hello,", u.Name)
}
func main() {
user := &User{Name: "Kirill"}
user.Greet() // автокомплит: .Greet
}
И на nim
type User = object
name: string
proc greet(u: User) {.method.} =
echo "Hello, ", u.name
let user = User(name: "Kirill")
user.greet() # автокомплит есть
и rust через трейты:
struct User {
name: String,
}
// trait описан отдельно от User
trait Greet {
fn greet(&self);
}
impl Greet for User {
fn greet(&self) {
println!("Hello, {}", self.name);
}
}
fn main() {
let user = User { name: "Kirill".to_string() };
user.greet(); // автокомплит срабатывает!
}
Ну и аналог (хотя и через классы) это экстеншены в Swift, Kotlin и C#
Кстати это довольно интересно, многие ассоцириуют синтаксис сущность.метод() только с ООП, но как вы видите, это вообще не так.
p.s. А как вы думаете, какая вторая деталь, про которую я упомянул в начале поста ? 🙂
Ссылки: Телеграм | Youtube | VK
BY Организованное программирование | Кирилл Мокевнин

Share with your friend now:
tg-me.com/orgprog/329